home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1997 / HAM Radio 1997.iso / vcls / useful / useful.pas next >
Pascal/Delphi Source File  |  1996-04-08  |  4KB  |  119 lines

  1. {
  2. ========
  3. Newsgroups: comp.lang.pascal.delphi.components
  4. Subject: Usefule Delphi Unit
  5. From: Jan Rochat <rochat@xs4all.nl>
  6. Date: 24 Aug 1995 18:27:32 GMT
  7.  
  8. The following unit contains some useful routines for delphi-users.
  9.  
  10. The first two routine are for use with an DropDown Combobox. The routine
  11. DropDownListSelection returns the current selected item of the dropDownComboBox
  12. If no slection was made the routine returns an empty string ('').
  13.  
  14. The second routine will select a string from a dropdowncombobox. If the string 
  15. given is not available in the dropdown list then no selection will be made.
  16.  
  17. The last routine is for use with an TabbedNotebook component.The routine will
  18. set the focus on the given control (component), by first making the tabPage that 
  19. contains the comtrol the visible page, and then setting the focus to the control.
  20. If the specified control is noton the TabbedNotebook no changes (focussing) will 
  21. be made.
  22.  
  23.  
  24. Any reactions on these routines are always welcome,
  25.  
  26. }
  27.  
  28.  
  29. unit Useful;
  30.  
  31. interface
  32.  
  33. uses StdCtrls, TabNotBk, Classes;
  34.  
  35.   function GetDropDownListSelection(cbList: TComboBox): string;
  36.   procedure SetDropDownListSelection(cbList: TComboBox; Selection: string);
  37.   procedure FocusTabbedNotebookControl(NoteBook: TTabbedNotebook; Control: TComponent);
  38.  
  39. implementation
  40.  
  41. uses
  42.   Controls, SysUtils;
  43.  
  44.   function GetDropDownListSelection(cbList: TComboBox): string;
  45.   var
  46.     Index : Integer;
  47.   begin
  48.     Result := '';
  49.     if cbList.Style = csDropDownList then
  50.     begin
  51.       Index := cbList.ItemIndex;
  52.       If Index >= 0 then Result := cbList.Items.Strings[Index];
  53.     end;
  54.   end;
  55.  
  56.  
  57.   procedure SetDropDownListSelection(cbList: TComboBox; Selection: string);
  58.   var
  59.     Index : Integer;
  60.   begin
  61.     Index := cbList.Items.IndexOf(Selection);
  62.     If Index >= 0 then cbList.ItemIndex := Index;
  63.   end;
  64.  
  65.  
  66.   procedure FocusTabbedNotebookControl(NoteBook: TTabbedNotebook; Control: TComponent);
  67.   var
  68.     Index, I : Integer;
  69.     Found : Boolean;
  70.     TabPage : TTabPage;
  71.  
  72.     function ControlPresent( OwnerControl: TControl; ControlToSearchFor: string): Boolean;
  73.     var
  74.       Index: Integer;
  75.       Found: Boolean;
  76.       Ctl: TWinControl;
  77.     begin
  78.       Found := False;
  79.       if OwnerControl is TWinControl then
  80.       begin
  81.         Ctl := TWinControl(OwnerControl);
  82.         if Ctl.ControlCount = 0
  83.           then Found := CompareText( OwnerControl.Name, ControlToSearchFor) = 0
  84.           else
  85.             begin
  86.               index := 0;
  87.               while (not found) and (index < Ctl.ControlCount) do
  88.               begin
  89.                 Found := ControlPresent(Ctl.Controls[Index], ControlToSearchFor);
  90.                 Inc(Index);
  91.               end;
  92.             end;
  93.       end;
  94.       Result := Found;
  95.     end; {ControlPresent}
  96.  
  97.   begin {FocusTabbedNotebookControl}
  98.     if Control is TWinControl then
  99.     begin
  100.       if not TWinControl(Control).CanFocus then
  101.       begin
  102.         found := False;
  103.         for index := 0 to NoteBook.Pages.Count-1 do
  104.         begin
  105.           TabPage := TTabPage(NoteBook.Pages.Objects[index]);
  106.           for i := TabPage.ControlCount-1 downto 0 do
  107.           begin
  108.             Found := ControlPresent(TabPage.Controls[i], Control.Name);
  109.             if found then NoteBook.PageIndex := Index;
  110.           end;
  111.         end;
  112.       end;
  113.       if TWinControl(Control).CanFocus then TWinControl(Control).SetFocus;
  114.     end;
  115.   end;  {FocusTabbedNotebookControl}
  116.  
  117. end.
  118.  
  119.